package top.wyloop.intoeins.module.ledger.service;


import top.wyloop.intoeins.module.ledger.model.entity.Account;

import java.util.List;

/**
 * @author Wyatt6
 * @date 2025/3/28
 */
public interface AccountService {
    /**
     * 创建新记账账户
     *
     * @param userId  用户ID
     * @param account 新记账账户数据
     * @return 新记账账户对象
     */
    Account createAccount(Long userId, Account account);

    /**
     * 删除记账账户
     *
     * @param userId    用户ID
     * @param accountId 要删除的记账账户ID
     */
    void deleteAccount(Long userId, Long accountId);

    /**
     * 更新记账账户
     *
     * @param userId  用户ID
     * @param account 记账账户
     * @return 新的记账账户对象
     */
    Account updateAccount(Long userId, Account account);

    /**
     * 查询用户的所有记账账户
     *
     * @param userId 用户ID
     * @return 记账账户列表
     */
    List<Account> getAccounts(Long userId);

    /**
     * 根据ID查找记账账户
     *
     * @param userId    用户ID
     * @param accountId 记账账户ID
     * @return 记账账户对象
     */
    Account findAccountById(Long userId, Long accountId);
}
